# git 地址
# https://gitee.com/masteryourself/spring-boot-docker
# 构建命令
# docker build -t spring-boot-docker:v1 -f dockerfile .
# 启动命令, 访问 http://ip:9999
# docker run --name=spring-boot-docker-v1 -p 9999:8080 -d spring-boot-docker:v1

# 1. 阶段一：maven
FROM maven AS maven_build

# 将工作目录置于 /app
WORKDIR /app

# 定义项目地址, 允许用户传入参数
ARG project_url="spring-boot-docker"

# 将项目中的所有文件添加到 /app 目录中
ADD ./$project_url /app/

# debug
RUN ls -l

# 构建打包
RUN mvn clean install -Dmaven.skip.test=true

# 将 maven 产物复制到 /app.jar
RUN cp target/*.jar /app.jar

# debug
RUN ls -l

# 2. 阶段二：jre
FROM openjdk:8-jre-alpine

# 将工作目录置于 /app
WORKDIR /app

# 多阶段构建, 将 [maven_build] 构建阶段的产物 /app.jar 复制到 /app.jar
COPY --from=maven_build /app.jar /app.jar

# 同步时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

# 设置环境变量
ENV JAVA_OPTS=""
ENV PARAMS=""

# 运行项目
ENTRYPOINT ["/bin/sh", "-c", "java ${JAVA_OPTS} -jar ${PARAMS} /app.jar"]